﻿using System.ComponentModel;

namespace WebAPI.Common
{
    public enum ResultCode
    {
        #region return code
        /// <summary>
        /// Success
        /// </summary>
        [Description("Success")]
        Success = 200,

        /// <summary>
        /// Login Required
        /// </summary>
        [Description("Login Required")]
        LoginRequired = 401,

        /// <summary>
        /// No valid license found to call this API
        /// </summary>
        [Description("No valid license found to call this API")]
        NotFoundApiLicense = 600,

        /// <summary>
        /// Invalid session to call this API
        /// </summary>
        [Description("Invalid session to call this API")]
        APISessionInvalid = 601,

        /// <summary>
        /// Data already exists
        /// </summary>
        [Description("Data already exists")]
        DataAlreadyExists = 602,

        /// <summary>
        /// Configuration Not Exists
        /// </summary>
        [Description("Configuration Not Exists")]
        ConfigurationNotExists = 603,


        /// <summary>
        /// Web user must have only one role
        /// </summary>
        [Description("Web user must have only one role")]
        WebUserHaveOnlyOneRole = 700,

        /// <summary>
        /// Group List Not Found
        /// </summary>
        [Description("Group List Not Found")]
        GroupListNotFound = 701,

        /// <summary>
        /// Configuration Already Exists
        /// </summary>
        [Description("Configuration Already Exists")]
        ConfigurationAlreadyExists = 702,



        /// <summary>
        /// User List Not Found
        /// </summary>
        [Description("User List Not Found")]
        UserListNotFound = 703,

        /// <summary>
        /// User Not Found
        /// </summary>
        [Description("User Not Found")]
        UserNotFound = 704,

        /// <summary>
        /// User Not Created
        /// </summary>
        [Description("User Not Created")]
        UserNotCreated = 705,

        /// <summary>
        /// UserNotUpdated
        /// </summary>
        [Description("UserNotUpdated")]
        UserNotUpdated = 706,

        /// <summary>
        /// User Code already exists
        /// </summary>
        [Description("User Code already exists")]
        UserCodeAlreadyExists = 707,

        /// <summary>
        /// User Name already exists
        /// </summary>
        [Description("User Name already exists")]
        UserNameAlreadyExists = 708,
        /// <summary>
        /// User code and user name must be different
        /// </summary>
        [Description("User code and user name must be different")]
        CodeNotEqualsName = 709,

        /// <summary>
        /// Login Name not exists
        /// </summary>
        [Description("Login Name not exists")]
        LoginNameNotExists = 710,

        /// <summary>
        /// Login Name has Disable
        /// </summary>
        [Description("Login Name has Disable")]
        LoginNameHasDisable = 711,

        /// <summary>
        /// Password Error
        /// </summary>
        [Description("Password Error")]
        PasswordError = 712,

        /// <summary>
        /// Invalid Input Parameters
        /// </summary>
        [Description("Invalid Input Parameters")]
        InvalidInputParameters = 1000,
        /// <summary>
        /// Invalid Dmg Category Code: Not found
        /// </summary>
        [Description("Invalid Dmg Category Code: Not found")]
        NotFoundDmgCategoryCode = 1001,
        /// <summary>
        /// Unable to Retrieve Account
        /// </summary>
        [Description("Unable to Retrieve Account")]
        UnableToRetrieveAccount = 1002,
        /// <summary>
        /// Error on Request UnMarshalling
        /// </summary>
        [Description("Error on Request UnMarshalling")]
        ErrorOnRequestUnMarshalling = 1003,
        /// <summary>
        /// No Match For This Account
        /// </summary>
        [Description("No Match For This Account")]
        NoMatchForThisAccount = 1004,
        /// <summary>
        /// Invalid Password
        /// </summary>
        [Description("Invalid Password")]
        InvalidPassword = 1005,
        /// <summary>
        /// The Selected Account is Blocked
        /// </summary>
        [Description("The Selected Account is Blocked")]
        SelectedAccountIsBlocked = 1006,
        /// <summary>
        /// The Selected Account is Disabled
        /// </summary>
        [Description("The Selected Account is Disabled")]
        SelectedAccountIsDisabled = 1007,
        /// <summary>
        /// Unable to LogIn: Multiple Match Returned
        /// </summary>
        [Description("Unable to LogIn: Multiple Match Returned")]
        UnableToLogIn = 1008,
        /// <summary>
        /// LogIn Failed
        /// </summary>
        [Description("LogIn Failed")]
        LogInFailed = 1009,
        /// <summary>
        /// LogIn Unhandled Error
        /// </summary>
        [Description("LogIn Unhandled Error")]
        LogInUnhandledError = 1010,
        /// <summary>
        /// Account Has Outstanding Debts
        /// </summary>
        [Description("Account Has Outstanding Debts")]
        AccountHasOutstandingDebts = 1011,
        /// <summary>
        /// Account Can Not Redeem so Many Items per Transaction
        /// </summary>
        [Description("Account Can Not Redeem so Many Items per Transaction")]
        TransactionExceedAccountLimits = 1012,
        /// <summary>
        /// Payment Amount Value Exceeds Client Remaining Credit
        /// </summary>
        [Description("Payment Amount Value Exceeds Client Remaining Credit")]
        PaymentAmountExceedsLimit = 1013,
        /// <summary>
        /// Account Credit Limit i snot Enought to Complete the Transaction
        /// </summary>
        [Description("Account Credit Limit i snot Enought to Complete the Transaction")]
        AccountCreditLimit = 1014,
        /// <summary>
        /// Valid Ticket not Found for the Selected Account
        /// </summary>
        [Description("Valid Ticket not Found for the Selected Account")]
        NotFoundSelectedAccountValidTicket = 1015,
        /// <summary>
        /// Invalid Dmg Category AK: Not found
        /// </summary>
        [Description("Invalid Dmg Category AK: Not found")]
        InvalidDmgCategoryAKNotFound = 1016,
        /// <summary>
        /// No Data to be Saved are Found in Request
        /// </summary>
        [Description("No Data to be Saved are Found in Request")]
        NoDataToBeSavedAreFoundInRequest = 1017,
        /// <summary>
        /// Invalid Link Type
        /// </summary>
        [Description("Invalid Link Type")]
        InvalidLinkType = 1018,
        /// <summary>
        /// Selected Account is not a Financial one
        /// </summary>
        [Description("Selected Account is not a Financial one")]
        SelectedAccountIsNotFinancial = 1019,
        /// <summary>
        /// Account Already Exist
        /// </summary>
        [Description("Account Already Exist")]
        AccountAlreadyExist = 1020,
        /// <summary>
        /// Fields Validator Error
        /// </summary>
        [Description("Fields Validator Error")]
        FieldsValidatorError = 1021,
        /// <summary>
        /// Account Already Exist
        /// </summary>
        [Description("Mail Not Valid")]
        MailNotValid = 1022,
        /// <summary>
        /// Only Positive Numbers Allowed
        /// </summary>
        [Description("Only Positive Numbers Allowed")]
        OnlyPositiveNumbersAllowed = 1023,
        /// <summary>
        /// Only Char Strings Allowed
        /// </summary>
        [Description("Only Char Strings Allowed")]
        OnlyCharStringsAllowed = 1024,
        /// <summary>
        /// Only Alphanumeric Strings Allowed
        /// </summary>
        [Description("Only Alphanumeric Strings Allowed")]
        OnlyAlphanumericStringsAllowed = 1025,
        /// <summary>
        /// Date Not Valid
        /// </summary>
        [Description("Date Not Valid")]
        DateNotValid = 1026,
        /// <summary>
        /// Integer Between Validator Error
        /// </summary>
        [Description("Integer Between Validator Error")]
        IntegerBetweenValidatorError = 1027,
        /// <summary>
        /// Integer Greater Validator Error
        /// </summary>
        [Description("Integer Greater Validator Error")]
        IntegerGreaterValidatorError = 1028,
        /// <summary>
        /// Integer Less Validator Error
        /// </summary>
        [Description("Integer Less Validator Error")]
        IntegerLessValidatorError = 1029,
        /// <summary>
        /// Min Lenght Error
        /// </summary>
        [Description("Min Lenght Error")]
        MinLenghtError = 1030,
        /// <summary>
        /// Max Length Error
        /// </summary>
        [Description("Max Length Error")]
        MaxLengthError = 1031,
        /// <summary>
        /// Field Required
        /// </summary>
        [Description("Field Required")]
        FieldRequired = 1032,
        /// <summary>
        /// Equal to Condition Failed
        /// </summary>
        [Description("Equal to Condition Failed")]
        EqualToConditionFailed = 1033,
        /// <summary>
        /// Multiple Choices selection Condition Failed
        /// </summary>
        [Description("Multiple Choices selection Condition Failed")]
        MultipleChoicesSelectionConditionFailed = 1034,
        /// <summary>
        /// Field not enabled based on Master Value
        /// </summary>
        [Description("Field not enabled based on Master Value")]
        FieldNotEnabledBasedOnMasterValue = 1035,
        /// <summary>
        /// Field value must be unique
        /// </summary>
        [Description("Field value must be unique")]
        FieldValueMustBeUnique = 1036,
        /// <summary>
        /// Field is read Only
        /// </summary>
        [Description("Field is read Only")]
        FieldIsReadOnly = 1037,
        /// <summary>
        /// Codice Fiscale Not Valid
        /// </summary>
        [Description("Codice Fiscale Not Valid")]
        CodiceFiscaleNotValid = 1038,
        /// <summary>
        /// Partita IVA Not Valid
        /// </summary>
        [Description("Partita IVA Not Valid")]
        PartitaIVANotValid = 1039,
        /// <summary>
        /// Document Template not found
        /// </summary>
        [Description("Document Template not found")]
        DocumentTemplateNotFound = 1040,
        /// <summary>
        /// New Password and Confirm are not matching
        /// </summary>
        [Description("New Password and Confirm are not matching")]
        NewPasswordAndConfirmAreNotMatching = 1041,
        /// <summary>
        /// NNew Password can not be empty
        /// </summary>
        [Description("New Password can not be empty")]
        NewPasswordCanNotBeEmpty = 1042,
        /// <summary>
        /// Password constraints are not respected
        /// </summary>
        [Description("Password constraints are not respected")]
        PasswordConstraintsAreNotRespected = 1043,
        /// <summary>
        /// Account Photo Not Found
        /// </summary>
        [Description("Account Photo Not Found")]
        AccountPhotoNotFound = 1044,
        /// <summary>
        /// No Order found for the selected date range
        /// </summary>
        [Description("No Order found for the selected date range")]
        NoOrderFoundForTheSelectedDateRange = 1045,
        /// <summary>
        /// Cannot Change Account Category ( DmgSubtype is not null and Account Type <> Primary )
        /// </summary>
        [Description("Cannot Change Account Category ( DmgSubtype is not null and Account Type <> Primary )")]
        CannotChangeAccountCategory = 1046,
        /// <summary>
        /// An Error occured while updating the account
        /// </summary>
        [Description("An Error occured while updating the account")]
        AnErrorOccuredWhileUpdatingAccount = 1047,
        /// <summary>
        /// Password Min length Violation
        /// </summary>
        [Description("Password Min length Violation")]
        PasswordMinLengthViolation = 1048,
        /// <summary>
        /// Password Max length Violation
        /// </summary>
        [Description("Password Max length Violation")]
        PasswordMaxLengthViolation = 1049,
        /// <summary>
        /// PasswordIsEmpty
        /// </summary>
        [Description("PasswordIsEmpty")]
        PasswordIsEmpty = 1050,
        /// <summary>
        /// Password Alphanumeric required ViolationPassword Alphanumeric required Violation
        /// </summary>
        [Description("Password Alphanumeric required Violation")]
        PasswordAlphanumericRequiredViolation = 1051,
        /// <summary>
        /// Password is too Short
        /// </summary>
        [Description("Password is too Short")]
        PasswordIsTooShort = 1052,
        /// <summary>
        /// Password is too Easy
        /// </summary>
        [Description("Password is too Easy")]
        PasswordIsTooEasy = 1053,
        /// <summary>
        /// Unknow Complet type for Password validation
        /// </summary>
        [Description("Unknow Complet type for Password validation")]
        UnknowCompletTypeForPasswordValidation = 1054,
        /// <summary>
        /// Image File name is missing
        /// </summary>
        [Description("Image File name is missing")]
        ImageFileNameIsMissing = 1055,
        /// <summary>
        /// Attachment File name is missing
        /// </summary>
        [Description("Attachment File name is missing")]
        AttachmentFileNameIsMissing = 1056,
        /// <summary>
        /// Attachment File name is missing
        /// </summary>
        [Description("No data found")]
        NoDataFound = 1078,
        /// <summary>
        /// Not Found
        /// </summary>
        [Description("Not Found")]
        NotFound = 404,

        /// <summary>
        /// unpayment
        /// </summary>
        [Description("unpayment")]
        Unpayment = 1079,
        /// <summary>
        /// Payment completed successfully
        /// </summary>
        [Description("Payment completed successfully")]
        PaymentCompletedSuccess = 1080,
        /// <summary>
        /// Payment completed successfully
        /// </summary>
        [Description("Verify datafeed failed")]
        VerifyDatafeedFailed = 1081
        #endregion
    }
}
